'); $("head").append( '' ); $("head").append( '' ); }; this.loadStyleBoxes = () => { $("head").append(''); }; this.npShortcode = () => { var pattern = /\[npProducts[^\]]*\]/g; // Wyrażenie regularne do wyszukiwania shortcode'ów "npProducts" z zmiennymi var html = document.documentElement.outerHTML; var wyniki = []; var dopasowanie; while ((dopasowanie = pattern.exec(html)) !== null) { var shortcode = dopasowanie[0]; var zmienne = {}; // Dodatkowe przetwarzanie, aby wyodrębnić zmienne z shortcode'a var zmiennaPattern = /(\w+)="([^"]*)"/g; var zmiennaDopasowanie; while ((zmiennaDopasowanie = zmiennaPattern.exec(shortcode)) !== null) { zmienne[zmiennaDopasowanie[1]] = zmiennaDopasowanie[2]; } wyniki.push(zmienne); } return wyniki; }; this.getProductsFromApi = () => { this.boxes.forEach((item, index) => { if (item?.ids !== undefined) { item.ids = item.ids.split(",").map((item) => { return parseInt(item, 10); }); } else { console.log("Nie zostało podane zadne ID do pobrania"); return false; } if (item?.elements !== undefined) { item.elements = item.elements.split(","); } else { console.log( "Nie zostało podane elementy do wyświetlenia w boxie #" + item.wrapper + ". Zostanie uzyty domyslny wyglad." ); } if (item.content == "products") { frontAPI.getProducts( (response) => { item.products = response.list; t.renderProducts(item); }, { urlParams: "?limit=" + this.productsLimit, ids: item.ids, } ); } else if (item.content == "categories") { frontAPI.getProductsFromCategory( (response) => { item.products = response.list; t.renderProducts(item); }, { urlParams: "?limit=" + this.productsLimit, id: item.ids, } ); } else if (item.content == "collection") { frontAPI.getProductsFromCollection( (response) => { item.products = response.list; t.renderProducts(item); }, { urlParams: "?limit=" + this.productsLimit, id: item.ids, } ); } else if (item.content == "loyalty_products") { frontAPI.getLoyaltyProducts( (response) => { item.products = response.list; t.renderProducts(item); }, { urlParams: "?limit=" + this.productsLimit, } ); } else if (item.content == "user_loyalty_products") { frontAPI.getLoyaltyProductsAvailableForUser( (response) => { item.products = response.list; t.renderProducts(item); }, { urlParams: "?limit=" + this.productsLimit, ids: item.ids, } ); } else { frontAPI.getProducts( (response) => { item.products = response.list; t.renderProducts(item); }, { urlParams: "?limit=" + this.productsLimit, ids: item.ids, } ); } }); }; this.generateGridProductMarkup = (product, settings) => { let productImage = true, productName = true, productPreview = true, productProducer = false, productDescription = false, priceString = "", price = true, priceNetto = false, promoTag = "", newTag = ""; if ( settings?.elements !== undefined && settings.elements.indexOf("image") > -1 ) { productImage = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("image") === -1 ) { productImage = false; } if ( settings?.elements !== undefined && settings.elements.indexOf("name") > -1 ) { productName = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("name") === -1 ) { productName = false; } if ( settings?.elements !== undefined && settings.elements.indexOf("preview") > -1 ) { productPreview = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("preview") === -1 ) { productPreview = false; } if ( settings?.elements !== undefined && settings.elements.indexOf("producer") > -1 ) { productProducer = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("producer") === -1 ) { productProducer = false; } if ( settings?.elements !== undefined && settings.elements.indexOf("description") > -1 ) { productDescription = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("description") === -1 ) { productDescription = false; } if (settings?.pricestring !== undefined) { priceString = settings.pricestring; } else if (settings?.elements === undefined) { priceString = ""; } if ( settings?.elements !== undefined && settings.elements.indexOf("netto") > -1 ) { priceNetto = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("netto") === -1 ) { priceNetto = false; } if ( settings?.elements !== undefined && settings.elements.indexOf("price") > -1 ) { price = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("price") === -1 ) { price = false; } if (product.newProduct) { newTag = '
  • nowość
  • '; } if (product.price.gross.promo_float) { let discount = ((product.price.gross.base_float - product.price.gross.promo_float) / product.price.gross.base_float) * 100; discount = discount.toFixed(0); promoTag = '
  • rabat -' + discount + "%
  • "; } let productMarkup = $(`
    ${ productImage ? ` ${
					  product.name
					} ` : `` } ${ productName ? ` $ ` : `` } ${ productProducer && product.producer ? `
    Producent: $
    ` : `` } ${ productDescription && product.shortDescription ? `
    $

    ` : `` }
    ${ price ? `
    Cena$:

    $

    ${ product.price?.gross.promo_float ? `

    Cena regularna$: $

    Najniższa cena$: $
    ` : `` } ${ priceNetto ? `

    Cena netto$: $

    ` : `` }
    ` : `` } ${ product?.can_buy ? `
    szt.
    ${ productPreview ? ` zobacz więcej ` : `` }
    ` : `
    ${ productPreview ? ` zobacz więcej ` : `` }
    ` }
    ${newTag || promoTag ? `` : ``}
    `); return productMarkup; }; this.generateSliderProductMarkup = (product, settings) => { let productImage = true, productName = true, productPreview = true, productProducer = false, priceNetto = false, productDescription = false, priceString = "", price = true, promoTag = "", newTag = ""; if ( settings?.elements !== undefined && settings.elements.indexOf("image") > -1 ) { productImage = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("image") === -1 ) { productImage = false; } if ( settings?.elements !== undefined && settings.elements.indexOf("name") > -1 ) { productName = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("name") === -1 ) { productName = false; } if ( settings?.elements !== undefined && settings.elements.indexOf("preview") > -1 ) { productPreview = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("preview") === -1 ) { productPreview = false; } if ( settings?.elements !== undefined && settings.elements.indexOf("producer") > -1 ) { productProducer = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("producer") === -1 ) { productProducer = false; } if ( settings?.elements !== undefined && settings.elements.indexOf("netto") > -1 ) { priceNetto = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("netto") === -1 ) { priceNetto = false; } if ( settings?.elements !== undefined && settings.elements.indexOf("price") > -1 ) { price = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("price") === -1 ) { price = false; } if (product.newProduct) { newTag = '
  • nowość
  • '; } if ( settings?.elements !== undefined && settings.elements.indexOf("description") > -1 ) { productDescription = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("description") === -1 ) { productDescription = false; } if (settings?.pricestring !== undefined) { priceString = settings.pricestring; } else if (settings?.pricestring === undefined) { priceString = ""; } if (product.price.gross.promo_float) { let discount = ((product.price.gross.base_float - product.price.gross.promo_float) / product.price.gross.base_float) * 100; discount = discount.toFixed(0); promoTag = '
  • rabat -' + discount + "%
  • "; } let productMarkup = $(`
    ${ productImage ? ` ${
				  product.name
				} ` : `` } ${ productName ? `
    $
    ` : `` } ${ productProducer && product.producer ? `
    Producent: $
    ` : `` } ${ productDescription && product.shortDescription ? `
    $

    ` : `` }
    ${ price ? `

    $${ product.price.gross.final }

    ${ product.price?.gross.promo_float ? `

    Cena regularna$: $

    Najniższa cena$: $
    ` : `` } ${ priceNetto ? `

    $$

    Cena regularna$: $

    Najniższa cena$: $
    ` : `` } ` : `` }
    ${ product.can_buy ? `
    szt.
    ` : `
    ` } ${ productPreview ? ` zobacz więcej ` : `` } ${ newTag || promoTag ? `` : `` }
    `); return productMarkup; }; this.renderProducts = (item) => { let wrapperItem = $("#" + item.wrapper); wrapperItem.empty().addClass("loading").removeClass("resetcss"); if (!wrapperItem.hasClass("box")) { wrapperItem.addClass("box"); } if (!wrapperItem.hasClass("box_custom")) { wrapperItem.addClass("box_custom"); } if (item?.name !== undefined) { const newHeader = $(`
    $
    `); wrapperItem.append(newHeader); } if (item?.view == "grid") { let newGridInnerbox = $(`
    `); wrapperItem.addClass("np-products").addClass("np-grid-products"); item.products.forEach((product, index) => { newGridInnerbox.append(t.generateSliderProductMarkup(product, item)); }); wrapperItem.append(newGridInnerbox); } else if (item?.view == "slider") { let newSliderInnerbox = $(`
    `); let newSliderWrapper = $(` `); wrapperItem.addClass("np-products"); item.products.forEach((product, index) => { newSliderWrapper.append(t.generateSliderProductMarkup(product, item)); }); newSliderInnerbox.append(newSliderWrapper); wrapperItem.append(newSliderInnerbox); } else { let newGridInnerbox = $(`
    `); wrapperItem.addClass("np-products").addClass("np-grid-products"); item.products.forEach((product, index) => { newGridInnerbox.append(t.generateSliderProductMarkup(product, item)); }); wrapperItem.append(newGridInnerbox); } wrapperItem.removeClass("loading"); if (item?.view == "slider") { let responsiveSlider = {}; if ($("#" + item.wrapper).closest(".s-grid-12").length > 0) { responsiveSlider = { 480: { items: 2, }, 768: { items: 3, }, 989: { items: 4, }, }; } else if ($("#" + item.wrapper).closest(".s-grid-9").length > 0) { responsiveSlider = { 480: { items: 2, }, 768: { items: 2, }, 989: { items: 3, }, }; } else if ($("#" + item.wrapper).closest(".s-grid-6").length > 0) { responsiveSlider = { 480: { items: 2, }, 768: { items: 2, }, 989: { items: 2, }, }; } else if ($("#" + item.wrapper).closest(".s-grid-3").length > 0) { esponsiveSlider = { 480: { items: 1, }, 768: { items: 1, }, 989: { items: 1, }, }; } else { responsiveSlider = { 480: { items: 2, }, 768: { items: 3, }, 989: { items: 4, }, }; } if (typeof $().owlCarousel !== 'function') { window._$npProductBoxTimeout = window._$npProductBoxTimeout ? window._$npProductBoxTimeout+1 : 1 if (window._$npProductBoxTimeout > 5) { return; } setTimeout(()=>{ this.renderProducts(item) },300) return; } window._$npProductBoxTimeout = 0; $("#" + item.wrapper + " .owl-carousel").owlCarousel({ loop: true, items: 1, dots: false, nav: true, margin: 5, responsive: responsiveSlider, }); } Shop.AddToCart.include({ options: { selectors: { form: "#" + item.wrapper + " .basket form[action], #" + item.wrapper + " form.basket[action]", }, }, }); var addtobasket = new Shop.AddToCart(); var availability = new Shop.ProductAvailability(); if (item.elements == undefined || item.elements?.indexOf("preview") > -1) { Shop.QuickView.include({ options: { selectors: { button: "#" + item.wrapper + " .quickview", }, }, }); var quickview = new Shop.QuickView(); } }; this.npFindShortcodes(); } document.addEventListener("DOMContentLoaded", function () { const npProductsBox = new npProductBox(); });

    Nie znaleziono produktów spełniających podane kryteria.

    do góry
    Sklep jest w trybie podglądu
    Pokaż pełną wersję strony
    Sklep internetowy Shoper.pl